Datasource : https://data.sa.gov.au/data/dataset/development-application-register/resource/7158ab0d-438f-48cf-baa4-0653b153fe76
# Load in some packages
import calendar
import pandas as pd
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
register_df = pd.read_csv(r"C:\Users\jki\Downloads\The Development Application Register.csv")
register_df.head(5)
ApplicationNumber | LodgementDate | ApplicantName | ApplicantAddressLine1 | ApplicantAddressLine2 | ApplicantAddressLine3 | ApplicantAddressLine4 | ApplicationDesc | ApplicationType | PropertyAddress | ... | CommenceDate | CompleteDate | UADecs | Referrals | ContaminationNotice | CertifierLodgementDates | ValueOfDevelopment | AppDescr | NumDwellings | VgNumber | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2921/2020 | 2/01/2020 12:00:00 AM | Inspire Design Studio | Inspire Design Studio | 15b King William Street | KENT TOWN SA 5067 | NaN | Construction of a detached dwelling with attac... | Planning and Building Application | 7B Leonard Street | ... | 24/04/2020 5:02:25 PM | NaN | NaN | NaN | NaN | 160000.0 | Construction of a detached dwelling with attac... | 2 | 324823201* | |
1 | 2922/2020 | 2/01/2020 12:00:00 AM | Prestige Pools SA Pty Ltd | Prestige Pools SA Pty Ltd | 516 Western Branch Road | WOODSIDE SA 5244 | NaN | Construction of a swimming pool with associate... | Planning and Building Application | 1 Edmund Avenue | ... | 10/08/2020 12:00:27 PM | 11/05/2020 8:50:14 AM | NaN | NaN | NaN | NaN | 22590.0 | Construction of a swimming pool with associate... | 0 | 2900561443 |
2 | 2923/2020 | 2/01/2020 12:00:00 AM | Inspire Design Studio | Inspire Design Studio | 15b King William Street | KENT TOWN SA 5067 | NaN | Construction of a detached dwelling with attac... | Planning and Building Application | 7A Leonard Street | ... | 9/04/2021 3:35:25 PM | NaN | NaN | NaN | NaN | 160000.0 | Construction of a detached dwelling with attac... | 2 | 3248232116 | |
3 | 292171/2019/1/A | 2/01/2020 12:00:00 AM | Adelaide Nominees Pty Ltd | Adelaide Nominees Pty Ltd | C/- Ekistics | PO Box 32 | GOODWOOD SA 5034 | Variation to authorisation previously granted ... | New Application Lodgement | 107 Womma Road | ... | 3/02/2020 12:00:00 AM | NaN | NaN | NaN | NaN | 1500000.0 | Variation to authorisation previously granted ... | 0 | NaN | |
4 | 2924/2020 | 2/01/2020 12:00:00 AM | Ms N M French | Ms N M French | 14 Charlson Street | DAVOREN PARK SA 5113 | NaN | Construction of a domestic out building - sch 1a | Building Application Only | 14 Charlson Street | ... | 18/06/2020 12:33:37 PM | NaN | NaN | NaN | NaN | NaN | 1700.0 | Construction of a domestic out building - sch 1a | 0 | 2909828028 |
5 rows × 36 columns
After getting a sense of the data's structure, it is a good idea to look at a statistical summary of the variables with df.describe()
register_df.describe()
Fees | WorkCommencementDate | PrivateCertAppDates | UADecs | Referrals | ValueOfDevelopment | NumDwellings | |
---|---|---|---|---|---|---|---|
count | 4067.000000 | 0.0 | 0.0 | 0.0 | 0.0 | 3.546000e+03 | 4067.000000 |
mean | 385.014537 | NaN | NaN | NaN | NaN | 3.155933e+05 | 0.386034 |
std | 953.844863 | NaN | NaN | NaN | NaN | 2.602688e+06 | 9.670009 |
min | 0.000000 | NaN | NaN | NaN | NaN | 0.000000e+00 | 0.000000 |
25% | 145.500000 | NaN | NaN | NaN | NaN | 1.010250e+04 | 0.000000 |
50% | 323.500000 | NaN | NaN | NaN | NaN | 1.682005e+05 | 0.000000 |
75% | 478.120000 | NaN | NaN | NaN | NaN | 2.209675e+05 | 0.000000 |
max | 26261.500000 | NaN | NaN | NaN | NaN | 1.043515e+08 | 615.000000 |
# lets check for missing
missing_values = register_df.isna().sum()
print(missing_values)
ApplicationNumber 0 LodgementDate 0 ApplicantName 10 ApplicantAddressLine1 10 ApplicantAddressLine2 10 ApplicantAddressLine3 14 ApplicantAddressLine4 3462 ApplicationDesc 0 ApplicationType 0 PropertyAddress 23 PropertySuburbPostCode 23 PrivateCertifierName 3991 PrivateCertiferAddressLine1 3991 PrivateCertiferAddressLine2 3991 PrivateCertiferAddressLine3 3991 PrivateCertiferAddressLine4 3994 Decision 0 ApprovalDate 637 Authority 567 ApprovalConditions 0 Fees 0 WorkCommencementDate 4067 Application_Date 0 Consents 241 BuildingCertifiers 1985 PrivateCertAppDates 4067 CommenceDate 1806 CompleteDate 2734 UADecs 4067 Referrals 4067 ContaminationNotice 4066 CertifierLodgementDates 1440 ValueOfDevelopment 521 AppDescr 0 NumDwellings 0 VgNumber 502 dtype: int64
# Define columns with missing values
columns_with_missing = ["ApplicantName", "ApprovalDate", "CommenceDate","ValueOfDevelopment",'CompleteDate']
# Drop rows with missing values in specified columns
register_df.dropna(subset=columns_with_missing, inplace=True)
# lets check for missing
missing_values = register_df.isna().sum()
print(missing_values)
ApplicationNumber 0 LodgementDate 0 ApplicantName 0 ApplicationDesc 0 ApplicationType 0 PrivateCertifierName 1238 PrivateCertiferAddressLine1 1238 PrivateCertiferAddressLine3 1238 PrivateCertiferAddressLine4 1238 Decision 0 ApprovalDate 0 Authority 3 ApprovalConditions 0 Fees 0 WorkCommencementDate 1238 Application_Date 0 Consents 0 BuildingCertifiers 173 PrivateCertAppDates 1238 CommenceDate 0 CompleteDate 0 ValueOfDevelopment 0 NumDwellings 0 dtype: int64
# lets check on data types
register_df.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 1238 entries, 1 to 3974 Data columns (total 23 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ApplicationNumber 1238 non-null object 1 LodgementDate 1238 non-null object 2 ApplicantName 1238 non-null object 3 ApplicationDesc 1238 non-null object 4 ApplicationType 1238 non-null object 5 PrivateCertifierName 0 non-null object 6 PrivateCertiferAddressLine1 0 non-null object 7 PrivateCertiferAddressLine3 0 non-null object 8 PrivateCertiferAddressLine4 0 non-null object 9 Decision 1238 non-null object 10 ApprovalDate 1238 non-null datetime64[ns] 11 Authority 1235 non-null object 12 ApprovalConditions 1238 non-null object 13 Fees 1238 non-null float64 14 WorkCommencementDate 0 non-null float64 15 Application_Date 1238 non-null datetime64[ns] 16 Consents 1238 non-null object 17 BuildingCertifiers 1065 non-null object 18 PrivateCertAppDates 0 non-null float64 19 CommenceDate 1238 non-null datetime64[ns] 20 CompleteDate 1238 non-null object 21 ValueOfDevelopment 1238 non-null float64 22 NumDwellings 1238 non-null int64 dtypes: datetime64[ns](3), float64(4), int64(1), object(15) memory usage: 232.1+ KB
# let change the data types relevant for analysis
register_df['Application_Date'] = pd.to_datetime(register_df['Application_Date'])
register_df['ApprovalDate'] = pd.to_datetime(register_df['ApprovalDate'])
register_df['CommenceDate'] = pd.to_datetime(register_df['CommenceDate'])
register_df.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 1238 entries, 1 to 3974 Data columns (total 23 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ApplicationNumber 1238 non-null object 1 LodgementDate 1238 non-null object 2 ApplicantName 1238 non-null object 3 ApplicationDesc 1238 non-null object 4 ApplicationType 1238 non-null object 5 PrivateCertifierName 0 non-null object 6 PrivateCertiferAddressLine1 0 non-null object 7 PrivateCertiferAddressLine3 0 non-null object 8 PrivateCertiferAddressLine4 0 non-null object 9 Decision 1238 non-null object 10 ApprovalDate 1238 non-null datetime64[ns] 11 Authority 1235 non-null object 12 ApprovalConditions 1238 non-null object 13 Fees 1238 non-null float64 14 WorkCommencementDate 0 non-null float64 15 Application_Date 1238 non-null datetime64[ns] 16 Consents 1238 non-null object 17 BuildingCertifiers 1065 non-null object 18 PrivateCertAppDates 0 non-null float64 19 CommenceDate 1238 non-null datetime64[ns] 20 CompleteDate 1238 non-null object 21 ValueOfDevelopment 1238 non-null float64 22 NumDwellings 1238 non-null int64 dtypes: datetime64[ns](3), float64(4), int64(1), object(15) memory usage: 232.1+ KB
register_df.head(2)
ApplicationNumber | LodgementDate | ApplicantName | ApplicationDesc | ApplicationType | PrivateCertifierName | PrivateCertiferAddressLine1 | PrivateCertiferAddressLine3 | PrivateCertiferAddressLine4 | Decision | ... | Fees | WorkCommencementDate | Application_Date | Consents | BuildingCertifiers | PrivateCertAppDates | CommenceDate | CompleteDate | ValueOfDevelopment | NumDwellings | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2922/2020 | 2/01/2020 12:00:00 AM | Prestige Pools SA Pty Ltd | Construction of a swimming pool with associate... | Planning and Building Application | NaN | NaN | NaN | NaN | Development Application Approved ... | ... | 529.5 | NaN | 2020-02-01 | Development Plan Consent Granted (04/02/2020),... | NaN | NaN | 2020-10-08 12:00:27 | 11/05/2020 8:50:14 AM | 22590.0 | 0 |
8 | 2928/2020 | 3/01/2020 12:00:00 AM | Mr A M Alimi | Demolition of a garage and construction of a g... | Building Application Only | NaN | NaN | NaN | NaN | Development Application Approved ... | ... | 198.0 | NaN | 2020-03-01 | Private Certified Building Rules Consent Grant... | Salisbury Development Services | NaN | 2020-02-14 11:53:21 | 4/03/2020 3:44:52 PM | 9000.0 | 0 |
2 rows × 23 columns
# List of columns to drop
columns_to_drop = ['PrivateCertifierName', 'PrivateCertiferAddressLine1','PrivateCertiferAddressLine3','PrivateCertiferAddressLine4']
# Dropping unwanted columns
register_df = register_df.drop(columns=columns_to_drop)
register_df.head(2)
ApplicationNumber | LodgementDate | ApplicantName | ApplicationDesc | ApplicationType | Decision | ApprovalDate | Authority | ApprovalConditions | Fees | WorkCommencementDate | Application_Date | Consents | BuildingCertifiers | PrivateCertAppDates | CommenceDate | CompleteDate | ValueOfDevelopment | NumDwellings | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2922/2020 | 2/01/2020 12:00:00 AM | Prestige Pools SA Pty Ltd | Construction of a swimming pool with associate... | Planning and Building Application | Development Application Approved ... | 2020-07-04 14:17:10 | Council ... | Sub-report here | 529.5 | NaN | 2020-02-01 | Development Plan Consent Granted (04/02/2020),... | NaN | NaN | 2020-10-08 12:00:27 | 11/05/2020 8:50:14 AM | 22590.0 | 0 |
8 | 2928/2020 | 3/01/2020 12:00:00 AM | Mr A M Alimi | Demolition of a garage and construction of a g... | Building Application Only | Development Application Approved ... | 2020-03-01 11:20:33 | Council ... | Sub-report here | 198.0 | NaN | 2020-03-01 | Private Certified Building Rules Consent Grant... | Salisbury Development Services | NaN | 2020-02-14 11:53:21 | 4/03/2020 3:44:52 PM | 9000.0 | 0 |
# List of columns to drop
columns_to_drop = ['BuildingCertifiers', 'PrivateCertAppDates']
# Dropping unwanted columns
register_df = register_df.drop(columns=columns_to_drop)
register_df.head(2)
ApplicationNumber | LodgementDate | ApplicantName | ApplicationDesc | ApplicationType | Decision | ApprovalDate | Authority | ApprovalConditions | Fees | WorkCommencementDate | Application_Date | Consents | CommenceDate | CompleteDate | ValueOfDevelopment | NumDwellings | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2922/2020 | 2/01/2020 12:00:00 AM | Prestige Pools SA Pty Ltd | Construction of a swimming pool with associate... | Planning and Building Application | Development Application Approved ... | 2020-07-04 14:17:10 | Council ... | Sub-report here | 529.5 | NaN | 2020-02-01 | Development Plan Consent Granted (04/02/2020),... | 2020-10-08 12:00:27 | 11/05/2020 8:50:14 AM | 22590.0 | 0 |
8 | 2928/2020 | 3/01/2020 12:00:00 AM | Mr A M Alimi | Demolition of a garage and construction of a g... | Building Application Only | Development Application Approved ... | 2020-03-01 11:20:33 | Council ... | Sub-report here | 198.0 | NaN | 2020-03-01 | Private Certified Building Rules Consent Grant... | 2020-02-14 11:53:21 | 4/03/2020 3:44:52 PM | 9000.0 | 0 |
# # Let's create a new variable, Month, from 'Order Date':
register_df['Approval Months'] = register_df['ApprovalDate'].dt.month
register_df['Approval Months'].describe()
count 1238.000000 mean 6.087237 std 3.687750 min 1.000000 25% 3.000000 50% 6.000000 75% 10.000000 max 12.000000 Name: Approval Months, dtype: float64
register_df.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 1238 entries, 1 to 3974 Data columns (total 19 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ApplicationNumber 1238 non-null object 1 LodgementDate 1238 non-null object 2 ApplicantName 1238 non-null object 3 ApplicationDesc 1238 non-null object 4 ApplicationType 1238 non-null object 5 Decision 1238 non-null object 6 ApprovalDate 1238 non-null datetime64[ns] 7 Authority 1235 non-null object 8 ApprovalConditions 1238 non-null object 9 Fees 1238 non-null float64 10 WorkCommencementDate 0 non-null float64 11 Application_Date 1238 non-null datetime64[ns] 12 Consents 1238 non-null object 13 CommenceDate 1238 non-null datetime64[ns] 14 CompleteDate 1238 non-null object 15 ValueOfDevelopment 1238 non-null float64 16 NumDwellings 1238 non-null int64 17 Month 1238 non-null int64 18 Approval Months 1238 non-null int64 dtypes: datetime64[ns](3), float64(3), int64(3), object(10) memory usage: 193.4+ KB
# lets change to the monetary values t to integer
register_df['Fees'] = register_df['Fees'].astype(int)
register_df['ValueOfDevelopment'] = register_df['ValueOfDevelopment'].astype(int)
register_df['Fees'].info()
register_df['ValueOfDevelopment'].info()
<class 'pandas.core.series.Series'> Int64Index: 1238 entries, 1 to 3974 Series name: Fees Non-Null Count Dtype -------------- ----- 1238 non-null int32 dtypes: int32(1) memory usage: 14.5 KB <class 'pandas.core.series.Series'> Int64Index: 1238 entries, 1 to 3974 Series name: ValueOfDevelopment Non-Null Count Dtype -------------- ----- 1238 non-null int32 dtypes: int32(1) memory usage: 14.5 KB
# Load in some packages
import calendar
import warnings
import pandas as pd
import matplotlib.pyplot as plt
from itertools import combinations
from collections import Counter
warnings.filterwarnings("ignore")
# Replace NaN or inf values in the 'Month' column with a default value (e.g., 0)
register_df['Approval Months'] = register_df['Approval Months'].fillna(0).astype(int)
# Convert month numbers to abbreviated month names
register_df['Approval Months Name'] = register_df['Approval Months'].apply(lambda x: calendar.month_abbr[x])
# Group by month and calculate total sales for each month
fees_by_month = register_df.groupby('Approval Months Name').sum()['Fees']
# Find the highest month for expense
highest_month = fees_by_month.idxmax()
fees_for_best_month = fees_by_month.max()
print(f"The Highest month for highest Fees collected was {highest_month} with a value of ${fees_for_best_month :,.2f}")
The Highest month for highest Fees collected was Feb with a value of $74,633.00
import pandas as pd
import matplotlib.pyplot as plt
# Assuming you already have 'fees_by_month' DataFrame and other necessary variables
# Set the index of fees_by_month DataFrame to 'Approval Months Name'
fees_by_month.index.name = None # Remove index name for better visualization
fees_by_month = fees_by_month.reindex(calendar.month_abbr[1:], fill_value=0)
# Plotting
plt.figure(figsize=(10, 6))
fees_by_month.plot(kind='bar', color='skyblue')
plt.title('Total Fees Collected by Month')
plt.xlabel('Month')
plt.ylabel('Total Fees')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
# Group by month and calculate total sales for each month
development_value_by_month = register_df.groupby('Approval Months Name').sum()['ValueOfDevelopment']
# Find the highest month for expense
highest_month = development_value_by_month.idxmax()
development_value_for_best_month = development_value_by_month.max()
print(f"The Highest month for highest Fees collected was {highest_month} with a value of ${development_value_for_best_month :,.2f}")
The Highest month for highest Fees collected was Feb with a value of $31,736,401.00
# Set the index of fees_by_month DataFrame to 'Approval Months Name'
development_value_by_month .index.name = None # Remove index name for better visualization
development_value_by_month =development_value_by_month .reindex(calendar.month_abbr[1:], fill_value=0)
# Plotting
plt.figure(figsize=(10, 6))
fees_by_month.plot(kind='bar', color='purple')
plt.title('Development Value Collected by Month')
plt.xlabel('Month')
plt.ylabel('Development Value')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
# Plot the highest expense for each application type
development_value_by_applicant_type = register_df.groupby('ApplicationType').sum()['ValueOfDevelopment']
# Sort the values in descending order and select the top five
top_five_development_value_by_applicant_type= development_value_by_applicant_type .sort_values(ascending=False).head(5)
# Display the result
print(top_five_development_value_by_applicant_type)
# Plot the top five County
top_five_development_value_by_applicant_type.plot(kind='bar', color='green', figsize=(10, 6))
plt.title('Top Five Applicants Type with the highest Developmentt Value ')
plt.xlabel('Applicant Type')
plt.ylabel('Development Value')
plt.show()
ApplicationType Planning and Building Application 235357528 New Application Lodgement 4821000 Building Application Only 2763669 Planning Application Only 549323 Name: ValueOfDevelopment, dtype: int32
# Plot the highest expense for each applicants
development_value_by_applicant = register_df.groupby('ApplicantName').sum()['ValueOfDevelopment']
# Sort the values in descending order and select the top five
top_five_development_value_by_applicant= development_value_by_applicant.sort_values(ascending=False).head(5)
# Display the result
print(top_five_development_value_by_applicant)
# Plot the top five County
top_five_development_value_by_applicant.plot(kind='bar', color='brown', figsize=(10, 6))
plt.title('Top Five Applicants with the highest Developmentt Value ')
plt.xlabel('Applicant Name')
plt.ylabel('Development Value')
plt.show()
ApplicantName Construction Services Aust Pty Ltd 108360536 Fairmont Homes Group Pty Ltd 28477881 Maybach Property Group 15261180 Metricon Homes Pty Ltd 12093855 Sterling Homes Pty Ltd 11520448 Name: ValueOfDevelopment, dtype: int32
register_df['ApplicantName'].value_counts()
Construction Services Aust Pty Ltd 524 Fairmont Homes Group Pty Ltd 129 Maybach Property Group 78 Sterling Homes Pty Ltd 53 Metricon Homes Pty Ltd 43 ... Mr S D Johnson 1 Mr A S Pickett 1 Design Constructive Pty Ltd 1 Adelaide Insurance Builders 1 Sagle Constructions Pty Ltd 1 Name: ApplicantName, Length: 158, dtype: int64
register_df['Fees'].mean()
rounded_mean = round(register_df['Fees'].mean())
print(rounded_mean)
423
register_df[register_df.where(register_df['Fees']>423,other=0).all(1)]
ApplicationNumber | LodgementDate | ApplicantName | ApplicationDesc | ApplicationType | Decision | ApprovalDate | Authority | ApprovalConditions | Fees | WorkCommencementDate | Application_Date | Consents | CommenceDate | CompleteDate | ValueOfDevelopment | NumDwellings | Month | Approval Months | Approval Months Name | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
19 | 29217/2020 | 9/01/2020 12:00:00 AM | Construction Services Aust Pty Ltd | Construction of a detached dwelling with attac... | Planning and Building Application | Development Application Approved ... | 2020-01-23 16:40:44 | Council ... | Sub-report here | 499 | NaN | 2020-09-01 | Development Plan Consent Granted (13/01/2020),... | 2020-02-24 12:11:26 | 23/04/2020 10:05:09 AM | 231800 | 2 | 1 | 1 | Jan |
22 | 29219/2020 | 9/01/2020 12:00:00 AM | Construction Services Aust Pty Ltd | Construction of a detached dwelling with attac... | Planning and Building Application | Development Application Approved ... | 2020-01-30 11:51:57 | Council ... | Sub-report here | 558 | NaN | 2020-09-01 | Development Plan Consent Granted (13/01/2020),... | 2020-02-24 12:12:15 | 14/04/2020 10:51:56 AM | 279019 | 2 | 1 | 1 | Jan |
25 | 29222/2020 | 9/01/2020 12:00:00 AM | Construction Services Aust Pty Ltd | Construction of a detached dwelling with attac... | Planning and Building Application | Development Application Approved ... | 2020-05-02 14:28:24 | Council ... | Sub-report here | 436 | NaN | 2020-09-01 | Development Plan Consent Granted (14/01/2020),... | 2020-02-03 10:20:09 | 21/04/2020 10:47:27 AM | 181837 | 2 | 5 | 5 | May |
36 | 29234/2020 | 13/01/2020 12:00:00 AM | Maybach Property Group | Construction of a detached dwelling with attac... | Planning and Building Application | Development Application Approved ... | 2020-04-02 10:33:56 | Council ... | Sub-report here | 469 | NaN | 2020-01-13 | Development Plan Consent Granted (16/01/2020),... | 2020-06-18 12:51:39 | 27/03/2020 10:34:10 AM | 208000 | 2 | 4 | 4 | Apr |
63 | 29259/2020 | 16/01/2020 12:00:00 AM | Rossdale Homes Pty Ltd | Construction of a detached dwelling with attac... | Planning and Building Application | Development Application Approved ... | 2020-05-03 11:51:46 | Council ... | Sub-report here | 515 | NaN | 2020-01-16 | Development Plan Consent Granted (29/01/2020),... | 2020-04-05 10:33:52 | 17/07/2020 11:05:29 AM | 245000 | 2 | 5 | 5 | May |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3391 | 292443/2021 | 12/02/2021 12:00:00 AM | Construction Services Aust Pty Ltd | Construction of a detached dwelling | Planning and Building Application | Work Completed ... | 2021-01-03 10:52:54 | Council ... | Sub-report here | 499 | NaN | 2021-12-02 | Development Plan Consent Granted (21/02/2021),... | 2021-04-28 10:54:30 | 18/08/2021 11:56:18 AM | 228399 | 2 | 1 | 1 | Jan |
3392 | 292444/2021 | 12/02/2021 12:00:00 AM | Construction Services Aust Pty Ltd | Construction of a detached dwelling | Planning and Building Application | Work Completed ... | 2021-03-03 09:45:32 | Council ... | Sub-report here | 461 | NaN | 2021-12-02 | Development Plan Consent Granted (26/02/2021),... | 2021-04-28 11:02:12 | 12/11/2021 10:02:02 AM | 197869 | 2 | 3 | 3 | Mar |
3471 | 292522/2021 | 17/02/2021 12:00:00 AM | Construction Services Aust Pty Ltd | Construction of a detached dwelling | Planning and Building Application | Work Completed ... | 2021-03-25 16:42:17 | Council ... | Sub-report here | 496 | NaN | 2021-02-17 | Development Plan Consent Granted (02/03/2021),... | 2021-04-28 10:33:46 | 3/09/2021 11:35:24 AM | 226113 | 2 | 3 | 3 | Mar |
3474 | 292525/2021 | 17/02/2021 12:00:00 AM | Construction Services Aust Pty Ltd | Construction of a detached dwelling | Planning and Building Application | Work Completed ... | 2021-03-17 13:42:44 | Council ... | Sub-report here | 455 | NaN | 2021-02-17 | Development Plan Consent Granted (09/03/2021),... | 2021-06-18 16:25:19 | 19/11/2021 11:06:43 AM | 193340 | 2 | 3 | 3 | Mar |
3475 | 292526/2021 | 17/02/2021 12:00:00 AM | Construction Services Aust Pty Ltd | Construction of a detached dwelling | Planning and Building Application | Work Completed ... | 2021-04-22 16:02:37 | Council ... | Sub-report here | 472 | NaN | 2021-02-17 | Development Plan Consent Granted (13/04/2021),... | 2021-07-16 14:03:42 | 10/03/2022 2:38:06 PM | 206588 | 2 | 4 | 4 | Apr |
119 rows × 20 columns